#!/usr/bin/perl
#
# Este script permite obtener la lista de sesiones correctamente formateada
# comprobando si los usuarios estan o no entre los usuarios del dominio 
# etc...
#

# Argumentos...
#   1er: Lista de recursos en uso
#     Formato... "IPC$         15626   test2         Sat Jan 21 13:04:24 2012"
#   2do: Lista de sesiones formateada...
#     Formato... "15626#Administrador#192.168.1.69#"
# Resultado ...
#   "15626#Administrador#IPC$#test2#192.168.1.69#21/01/2012 13:04:24#1327147464"
#

 if ( 1 != $#ARGV ) {
    print "ERROR: Debes pasar <Lista_recursos>  <Lista_sesiones>\n";
    exit 4;
 }

 # Abrir en modo lectura el fichero de LDAP
 open(FILE,"<". $ARGV[0]) || die ("ERROR: No puedo abrir [".$ARGV[0]."]\n");
 # Leer el fichero de LDAP...
 while ( chomp($linea=<FILE>) ) {
    if ( $linea=~m/^(.*\S)\s+(\d+)\s+(\S*\S)\s+(\S+\s+\S+\s+\d+\s+\d.+\s+\d+)\s*$/ ) {
       $recurso=$1;
       $pid=$2;
       $fecha=$4;
       $pc=$3;
   
       # Obtener formatos fecha
       chomp($fecha1=`date -d '$fecha' '+%s'`);
       chomp($fecha2=`date -d '$fecha' '+%d/%m/%Y %H:%M:%S'`);
     
       # Obtener el Usuario...
       chomp($user=`grep '^$pid#' $ARGV[1] | cut -d'#' -f2 `);
       # ... y la ip...
       chomp($ip=`grep '^$pid#' $ARGV[1] | cut -d'#' -f3 `);

       print "$pid#$user#$recurso#$pc#$ip#$fecha2#$fecha1#\n"; 
    }
 }
 close FILE;

